CSS property - float
Home

CSS property - float

CSS property - float

Elementen zwevend maken waardoor ze afwijken van hun 'natuurlijke plaats in de 'natuurlijke flow' waarop een browser html elementen weergeeft.

Zwevende elementen

Bronnen

Chris Coyier, All About Floats, July 8, 2009

De box van een zwevend element wordt langs de linker- of rechterrand van het moederelement geplaatst en de boxen van andere elementen ervoor of erna kunnen hun plek ernaast krijgen.

Met behulp van de float eigenschap in CSS kunnen alle elementen zwevend gemaakt worden. Je moet wel de breedte van het element expliciet vast leggen met de width eigenschap. Een uitzondering voor dat laatste geldt de replaced elementen, die van zichzelf al een bepaalde breedte hebben.

In het volgende voorbeeld wordt voor een inline element de float eigenschap ingesteld.

afbeelding - geen float
afbeelding - geen float

We laten de afbeelding links zweven van de headings en de paragrafen die erop volgen:

<figure style="float: left">
    <img src="images/Stromae.jpg" alt="foto van Stromae"><br>
    <figcaption>Standaard 7 september 2014: Showbizznet</figcaption>
</figure>

Je kan de stijlregel ook in het style element van het head element opnemen of in een extern CSS bestand plaatsen.

afbeelding - float left
afbeelding - float left

Een element met de float eigenschap ingesteld op de waarden left of right, wordt een element op op blokniveau. Een eventueel gebruikte display eigenschap wordt genegeerd.

De box van een zwevend element wordt compleet weergegeven, inclusief padding, border en margin. De margin van een zwevend element en aangrenzende elementen schuiven niet in elkaar

Om de box van twee elementen op blokniveau naast elkaar te plaatsen, moet je voor beide elementen de float eigenschap instellen. Je kan eventueel margin-left eigenschap gebruiken om wat witruimte tussen de twee boxen te creëren.

Stoppen met zweven

Neem aan dat je in het voorbeeld hierboven alleen de titel rechts wil laten zweven van de foto. Er is plaats genoeg naast de foto om de titel en enkele paragrafen ernaast te laten zweven. Dus moet je die standaard mogelijkheid blokkeren door aan de eerste paragraaf na de titel de eigeschap clear: left toe te kennen.

p.clear {
     clear: both;
 }

p.clear {
     clear: left;
 }
p.clear {
     clear: right;
 }

In ons voorbeeld passen we de css aan om alleen de titel naast de foto te laten zweven:

<figure style="float: left">
    <img src="images/Stromae.jpg" alt="foto van Stromae"><br>
    <figcaption>Standaard 7 september 2014: Showbizznet</figcaption>
</figure>
<h2>Hoe zou dat nu zitten? Is Stromae opgebrand? </h2>
<p style="clear: left;">Zo te zien valt het wel mee. Zijn tourschema zit, om te beginnen, nog vol tot eind december, en daar staan belangrijke concerten <br>
        op in gebieden die hij wil veroveren. Want opgepast: Stromae is mega in Frankrijk en België, maar in andere landen blijft zijn <br>
        succes vooralsnog beperkt. Er is nog werk om van onze maestro een wereldster te maken.
</p>

Met dit als resultaat:

afbeelding - clear left
afbeelding - clear left

Oefening

Opdracht

We maken een wireframe/mockup/tekening te maken van de pagina lay-out.

Bloemlezing Marsman Mockup
Bloemlezing Marsman Mockup

Onze lay-out moet responsief zijn. Dat wil zeggen dat de lay-out zich moet aanpassen aan het soort browser en toestel waarop de website bekeken wordt.

De header van de pagina samen het artikel moeten precies in het browservenster passen. Dus de hoogte van de pagina-header en het artikel is tesamen 100% van het browservenster. Hetzelfde geldt voor de breedte.

De pagina-footer staat net onder het browservenster. De pagina-footer bevet geen wezenlijke informatie en het maakt niet uit dat de gebruiker moet scrollen om de pagina-footer informatie te kunnen zien.

Vervolgens stellen we een lijst op van de postioneren elementen.

Lijst met te positioneren elementen
element positie hoogte breedte witruimte
html 100% 100%
body 100% 100% padding links en rechts 5%
header bovenaan de pagina 12% 100% 0
header nav nav links in de pagina header evenhoog als de inhoud evenbreed als de inhoud ongeveer in het midden, mag niet plakken tegen de linkerrand
header nav ol li items in de lijst naast elkaar
header h1 rechts in de pagina header 2em evenbreed als de inhoud evenhoog als links in nav, mag niet plakken tegen de rechterrand
article onder de header, tot onderaan het browservenster 88% 100%
article aside onder de pagina header evenhoog als article, zet overflow op vertikale scroll 30% van article rechterkantlijn 2%
article aside nav in de article aside
article header naast de article aside evenhoog als article 68%
article header h1 links in de article header
article header h2 links in de article header
figure links in de article header
img in de figure
figcaption onder de img
article section rechts van article aside evenhoog als article 68%
article section header h1 rechts in de article section header top: 1.5em
article section p links in de article section standaard grootte 16px of 1em top: 1em
article section footer p onderaan in de article section standaard grootte 16px of 1em
article section footer p cite standaard grootte 16px of 1em
article footer evenhoog als content 68%
body footer p links in de footer van webpagina standaard grootte 16px of 1em
body footer h3 in de footer van webpagina 1.2em
body footer address in de footer van webpagina standaard grootte 16px of 1em

JI
2019-01-29 20:31:58